package org.jeecg.modules.flow.vo;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.*;

import java.io.Serializable;
import java.util.Date;

@EqualsAndHashCode(callSuper = false)
@NoArgsConstructor
@AllArgsConstructor
@Builder(toBuilder = true)
@Data
@ApiModel(value = "历史流程活动节点对象", description = "历史流程活动节点对象")
public class HistoryActivityInstanceVo implements Serializable {

    /**
     * The unique identifier of this historic activity instance.
     */
    @ApiModelProperty(value = "记录ID")
    String id;

    /**
     * The unique identifier of the activity in the process
     */
    @ApiModelProperty(value = "任务定义ID")
    String activityId;

    /**
     * The display name for the activity
     */
    @ApiModelProperty(value = "任务名称")
    String activityName;

    /**
     * The XML tag of the activity as in the process file
     */

    @ApiModelProperty(value = "节点类型")
    String activityType;

    /**
     * Process definition reference
     */
    @ApiModelProperty(value = "流程定义ID")
    String processDefinitionId;

    /**
     * Process instance reference
     */
    @ApiModelProperty(value = "流程实例ID")
    String processInstanceId;

    /**
     * Execution reference
     */
    @ApiModelProperty(value = "任务执行Id")
    String executionId;

    /**
     * The corresponding task in case of task activity
     */
    @ApiModelProperty(value = "任务ID")
    String taskId;


    /**
     * Assignee in case of user task activity
     */
    @ApiModelProperty(value = "任务办理人的id")
    String assignee;

    /**
     * Time when the activity instance started
     */
    @ApiModelProperty(value = "任务开始时间")
    Date startTime;

    /**
     * Time when the activity instance ended
     */
    @ApiModelProperty(value = "任务结束时间")
    Date endTime;

    /**
     * Difference between
     */
    @ApiModelProperty(value = "任务持续时间")
    Long durationInMillis;

    /**
     * Returns the delete reason for this activity, if any was set (if completed normally, no delete reason is set)
     */
    @ApiModelProperty(value = "删除意见")
    String deleteReason;

    /**
     * Returns the tenant identifier for the historic activity
     */
    @ApiModelProperty(value = "租户ID")
    String tenantId;
    /**
     * 代理人的名称
     */
    @ApiModelProperty(value = "任务办理人名称")
    String realName;

    /**
     * 审核意见
     */
    @ApiModelProperty(value = "审核意见")
    private String auditInfo;

    /**
     * 机构ID
     */
    @ApiModelProperty(value = "机构ID")
    private String orgId;


    /**
     * 操作类型 1、同意2、撤回、3终结
     */
    @ApiModelProperty(value = "操作类型 1、同意2、撤回、3终结")
    private Integer operationType;
}